/**
 * \file            lwevt_type.h
 * \brief           LwEVT types main file
 */

/**
 * \ingroup         LWEVT
 * \brief           Defines basic event type with respective name, only
 * 
 * Basic events do not have possibility to send data to application
 * 
 * `#define LWEVT_TYPE_BASIC(MY_EVENT_NAME)`
 */
#ifndef LWEVT_TYPE_BASIC
#define LWEVT_TYPE_BASIC(name)
#endif

/**
 * \ingroup         LWEVT
 * \brief           Defines extended event type with possibily to send data
 * 
 * Data C-type has to be declared for proper use case
 * 
 * `#define LWEVT_TYPE_EXT(MY_EVENT_NAME, struct {int par1; int par2;} my_event_name;)`
 */
#ifndef LWEVT_TYPE_EXT
#define LWEVT_TYPE_EXT(name, data)
#endif

/* Include user types */

/* Define basic types */
//事件1
LWEVT_TYPE_BASIC(LWEVT_TYPE_MY_BASIC_1)
//事件2
LWEVT_TYPE_BASIC(LWEVT_TYPE_MY_BASIC_2)
//事件3
LWEVT_TYPE_BASIC(LWEVT_TYPE_MY_BASIC_3)
//事件4
LWEVT_TYPE_BASIC(LWEVT_TYPE_MY_BASIC_4)
//事件5
LWEVT_TYPE_BASIC(LWEVT_TYPE_MY_BASIC_5)
//事件6
LWEVT_TYPE_BASIC(LWEVT_TYPE_MY_BASIC_6)
/* Define extended types */
//定义扩展事件类型1
LWEVT_TYPE_EXT(LWEVT_TYPE_MY_EXT_1, struct { int par1; int par2; } ext1)
//定义扩展事件类型2
LWEVT_TYPE_EXT(LWEVT_TYPE_MY_EXT_2, struct { int par3; int par4; } ext2)
//定义扩展事件类型3
LWEVT_TYPE_EXT(LWEVT_TYPE_MY_EXT_3, struct { int par1; int par2; } ext3)
//定义扩展事件类型4
LWEVT_TYPE_EXT(LWEVT_TYPE_MY_EXT_4, struct { int par1; int par2; } ext4)
//定义扩展事件类型5
LWEVT_TYPE_EXT(LWEVT_TYPE_MY_EXT_5, struct { int par3; int par4; } ext5)
//定义扩展事件类型6
LWEVT_TYPE_EXT(LWEVT_TYPE_MY_EXT_6, struct { int par1; int par2; } ext6)


/* Undefine type back - after use */
#undef LWEVT_TYPE_BASIC
#undef LWEVT_TYPE_EXT

